#include<bits/stdc++.h>
/* 题目输入数字不大于3000, 最大循环节也是不会超过1600的,所以设置一个足够大的数组
 * 数组用来存储每一位小数的商, 即当前位的数值; 余数, 即给下一位计算数值的数
 */
int p[1600][2];

int main(){
    memset(p, 0, sizeof(p));
    int a, b;

//    freopen("C:\\Users\\Flower_LC\\Desktop\\Book_Exersize\\input.txt", "r", stdin);
    while(scanf("%d %d", &a, &b) != EOF){
        // 计算输出整数部分
        printf("%d/%d = %d.", a, b, a / b);

        // 小数部分
        a = a % b;
        int index = -1;
        int T = 0;
        p[0][0] = (a * 10) / b; // 商
        a = p[0][1] = (a * 10) % b; // 余数
        int i = 1;
        while(index == -1){
            p[i][0] = (a * 10) / b;
            a = p[i][1] = (a * 10) % b;
            for(int j = i - 1; j >= 0; --j){ // 从最低位向前查找, <商>和<余数>同时相等时便是循环节起始位置
                if((p[j][0] == p[i][0]) && (p[j][1] == p[i][1])){
                    index = j;
                    T = i - j;
                    break;
                }
            }
            ++i;
        }

        // 计算输出小数部分
        for (int i = 0; i < index; ++i)
            printf("%d", p[i][0]);
        printf("(");
        for(int i = 0; i < T; ++i){
            printf("%d", p[index + i][0]);
            if(i + index == 49){
                printf("...");
                break;
            }
        }
        printf(")\n");
        printf("   %d = number of digits in repeating cycle\n\n", T);
    }
}